home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / source.lha / Editor / edit1.c < prev    next >
C/C++ Source or Header  |  1992-10-02  |  32KB  |  902 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1991 by Torsten Jürgeleit
  4.  *
  5.  *    Name .....: edit1.c
  6.  *    Created ..: Sunday 22-Dec-91 21:22:18
  7.  *    Revision .: 1
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    02-Oct-92   Michael Bjerking       New realese, better Screen/Window editor
  12.  *    22-Dec-91   Torsten Jürgeleit      Created this file!
  13.  *
  14.  ****************************************************************************
  15.  *
  16.  *    Edit ISUP objects - part 1
  17.  *
  18.  * $Revision Header ********************************************************/
  19.  
  20.  /* Includes */
  21.  
  22. #include "includes.h"
  23. #include "defines.h"
  24. #include "imports.h"
  25. #include "protos.h"
  26.  
  27.  /* Defines for edit gadgets */
  28.  
  29. #define EDIT_GADGET_XOFFSET    (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET1_LEFT_EDGE - 3 * EDIT_GADGET1_WIDTH) / 3
  30.  
  31. #define EDIT_GADGET1_TYPE        GADGET_DATA_TYPE_BUTTON
  32. #define EDIT_GADGET1_FLAGS        GADGET_DATA_FLAG_HOTKEY
  33. #define EDIT_GADGET1_LEFT_EDGE        10
  34. #define EDIT_GADGET1_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET1_HEIGHT - 5)
  35. #define EDIT_GADGET1_WIDTH        ((7 + 2) * 8)
  36. #define EDIT_GADGET1_HEIGHT        15
  37. #define EDIT_GADGET1_TEXT        "_Ok"
  38. #define EDIT_GADGET1_TEXT_ATTR        &topaz80_attr
  39.  
  40. #define EDIT_GADGET2_TYPE        GADGET_DATA_TYPE_BUTTON
  41. #define EDIT_GADGET2_FLAGS        GADGET_DATA_FLAG_HOTKEY
  42. #define EDIT_GADGET2_LEFT_EDGE        (EDIT_GADGET1_LEFT_EDGE + EDIT_GADGET1_WIDTH + EDIT_GADGET_XOFFSET)
  43. #define EDIT_GADGET2_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET2_HEIGHT - 5)
  44. #define EDIT_GADGET2_WIDTH        EDIT_GADGET1_WIDTH
  45. #define EDIT_GADGET2_HEIGHT        EDIT_GADGET1_HEIGHT
  46. #define EDIT_GADGET2_TEXT        "_Default"
  47. #define EDIT_GADGET2_TEXT_ATTR        &topaz80_attr
  48.  
  49. #define EDIT_GADGET3_TYPE        GADGET_DATA_TYPE_BUTTON
  50. #define EDIT_GADGET3_FLAGS        GADGET_DATA_FLAG_HOTKEY
  51. #define EDIT_GADGET3_LEFT_EDGE        (EDIT_GADGET4_LEFT_EDGE - EDIT_GADGET3_WIDTH - EDIT_GADGET_XOFFSET)
  52. #define EDIT_GADGET3_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET3_HEIGHT - 5)
  53. #define EDIT_GADGET3_WIDTH        EDIT_GADGET1_WIDTH
  54. #define EDIT_GADGET3_HEIGHT        EDIT_GADGET1_HEIGHT
  55. #define EDIT_GADGET3_TEXT        "S_witch"
  56. #define EDIT_GADGET3_TEXT_ATTR        &topaz80_attr
  57.  
  58. #define EDIT_GADGET4_TYPE        GADGET_DATA_TYPE_BUTTON
  59. #define EDIT_GADGET4_FLAGS        GADGET_DATA_FLAG_HOTKEY
  60. #define EDIT_GADGET4_LEFT_EDGE        (EDITOR_WINDOW_WIDTH - EDIT_GADGET4_WIDTH - 10)
  61. #define EDIT_GADGET4_TOP_EDGE        (EDITOR_WINDOW_HEIGHT - EDIT_GADGET4_HEIGHT - 5)
  62. #define EDIT_GADGET4_WIDTH        EDIT_GADGET1_WIDTH
  63. #define EDIT_GADGET4_HEIGHT        EDIT_GADGET1_HEIGHT
  64. #define EDIT_GADGET4_TEXT        "_Cancel"
  65. #define EDIT_GADGET4_TEXT_ATTR        &topaz80_attr
  66.  
  67.  /* Statics for edit gadgets */
  68.  
  69. STATIC struct GadgetData edit_gadget_data[]=
  70. {
  71.     {
  72.         EDIT_GADGET1_TYPE,        /* gd_Type */
  73.         EDIT_GADGET1_FLAGS,        /* gd_Flags */
  74.         EDIT_GADGET1_LEFT_EDGE,    /* gd_LeftEdge */
  75.         EDIT_GADGET1_TOP_EDGE,    /* gd_TopEdge */
  76.         EDIT_GADGET1_WIDTH,        /* gd_Width */
  77.         EDIT_GADGET1_HEIGHT,    /* gd_Height */
  78.         EDIT_GADGET1_TEXT,        /* *gd_Text */
  79.         EDIT_GADGET1_TEXT_ATTR,    /* *gd_TextAttr */
  80.         {0, 0, 0}
  81.     },
  82.     {
  83.         EDIT_GADGET2_TYPE,        /* gd_Type */
  84.         EDIT_GADGET2_FLAGS,        /* gd_Flags */
  85.         EDIT_GADGET2_LEFT_EDGE,    /* gd_LeftEdge */
  86.         EDIT_GADGET2_TOP_EDGE,    /* gd_TopEdge */
  87.         EDIT_GADGET2_WIDTH,        /* gd_Width */
  88.         EDIT_GADGET2_HEIGHT,    /* gd_Height */
  89.         EDIT_GADGET2_TEXT,        /* *gd_Text */
  90.         EDIT_GADGET2_TEXT_ATTR,    /* *gd_TextAttr */
  91.         {0, 0, 0}
  92.     },
  93.     {
  94.         EDIT_GADGET3_TYPE,        /* gd_Type */
  95.         EDIT_GADGET3_FLAGS,        /* gd_Flags */
  96.         EDIT_GADGET3_LEFT_EDGE,    /* gd_LeftEdge */
  97.         EDIT_GADGET3_TOP_EDGE,    /* gd_TopEdge */
  98.         EDIT_GADGET3_WIDTH,        /* gd_Width */
  99.         EDIT_GADGET3_HEIGHT,    /* gd_Height */
  100.         EDIT_GADGET3_TEXT,        /* *gd_Text */
  101.         EDIT_GADGET3_TEXT_ATTR,    /* *gd_TextAttr */
  102.         {0, 0, 0}
  103.     },
  104.     {
  105.         EDIT_GADGET4_TYPE,        /* gd_Type */
  106.         EDIT_GADGET4_FLAGS,        /* gd_Flags */
  107.         EDIT_GADGET4_LEFT_EDGE,    /* gd_LeftEdge */
  108.         EDIT_GADGET4_TOP_EDGE,    /* gd_TopEdge */
  109.         EDIT_GADGET4_WIDTH,        /* gd_Width */
  110.         EDIT_GADGET4_HEIGHT,    /* gd_Height */
  111.         EDIT_GADGET4_TEXT,        /* *gd_Text */
  112.         EDIT_GADGET4_TEXT_ATTR,    /* *gd_TextAttr */
  113.         {0, 0, 0}
  114.     },
  115.     {
  116.         INTUISUP_DATA_END        /* mark end of gadget data array */
  117.     }
  118. };
  119.  /* Defines for border data */
  120.  
  121. #define BORDER_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  122. #define BORDER_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  123. #define BORDER_GADGET1_LEFT_EDGE    (180 + (4 + 1) * 8)
  124. #define BORDER_GADGET1_TOP_EDGE        30
  125. #define BORDER_GADGET1_WIDTH        100
  126. #define BORDER_GADGET1_HEIGHT        12
  127. #define BORDER_GADGET1_TEXT        "_Name"
  128. #define BORDER_GADGET1_TEXT_ATTR    &topaz80_attr
  129. #define BORDER_GADGET1_INPUT_LEN    MAX_TEMPLATE_NAME_LEN
  130. #define BORDER_GADGET1_INPUT_ACTIVATE    ((ULONG)BORDER_GADGET_NAME << 16 | BORDER_GADGET_NAME)
  131. #define BORDER_GADGET1_INPUT_DEFAULT    NULL
  132.  
  133. #define BORDER_GADGET2_TYPE        GADGET_DATA_TYPE_CYCLE
  134. #define BORDER_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  135. #define BORDER_GADGET2_TEXT        "_Type"
  136. #define BORDER_GADGET2_LEFT_EDGE    BORDER_GADGET1_LEFT_EDGE
  137. #define BORDER_GADGET2_TOP_EDGE        (BORDER_GADGET1_TOP_EDGE + BORDER_GADGET1_HEIGHT + 10)
  138. #define BORDER_GADGET2_WIDTH        (20 + (11 + 2) * 8)
  139. #define BORDER_GADGET2_HEIGHT        15
  140. #define BORDER_GADGET2_TEXT_ATTR    &topaz80_attr
  141. #define BORDER_GADGET2_ACTIVE        0
  142. #define BORDER_GADGET2_TEXT_ARRAY    &border_type_text_array[0]
  143.  
  144.  /* Statics for edit gadgets */
  145.  
  146. STATIC BYTE *border_type_text_array[]=
  147. {
  148.     "Box 1 - Out", "Box 1 - In", "Box 2 - Out", "Box 2 - In", NULL
  149. };
  150. STATIC struct GadgetData border_gadget_data[]=
  151. {
  152.     {
  153.         BORDER_GADGET1_TYPE,    /* gd_Type */
  154.         BORDER_GADGET1_FLAGS,    /* gd_Flags */
  155.         BORDER_GADGET1_LEFT_EDGE,        /* gd_LeftEdge */
  156.         BORDER_GADGET1_TOP_EDGE,/* gd_TopEdge */
  157.         BORDER_GADGET1_WIDTH,    /* gd_Width */
  158.         BORDER_GADGET1_HEIGHT,    /* gd_Height */
  159.         BORDER_GADGET1_TEXT,    /* *gd_Text */
  160.         BORDER_GADGET1_TEXT_ATTR,        /* *gd_TextAttr */
  161.         {
  162.             BORDER_GADGET1_INPUT_LEN,    /* gd_InputLen */
  163.             BORDER_GADGET1_INPUT_ACTIVATE,        /* gd_InputActivate */
  164.             BORDER_GADGET1_INPUT_DEFAULT        /* gd_InputDefault */
  165.         }
  166.     },
  167.     {
  168.         BORDER_GADGET2_TYPE,    /* gd_Type */
  169.         BORDER_GADGET2_FLAGS,    /* gd_Flags */
  170.         BORDER_GADGET2_LEFT_EDGE,        /* gd_LeftEdge */
  171.         BORDER_GADGET2_TOP_EDGE,/* gd_TopEdge */
  172.         BORDER_GADGET2_WIDTH,    /* gd_Width */
  173.         BORDER_GADGET2_HEIGHT,    /* gd_Height */
  174.         BORDER_GADGET2_TEXT,    /* *gd_Text */
  175.         BORDER_GADGET2_TEXT_ATTR,        /* *gd_TextAttr */
  176.         {
  177.             0,                    /* gd_CyclePad */
  178.             BORDER_GADGET2_ACTIVE,        /* gd_CycleActive */
  179.             BORDER_GADGET2_TEXT_ARRAY    /* *gd_CycleTextArray */
  180.         }
  181.     },
  182.     {
  183.         INTUISUP_DATA_END        /* mark end of gadget data array */
  184.     }
  185. };
  186.  /* Defines for text data */
  187.  
  188. #define TEXT_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  189. #define TEXT_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  190. #define TEXT_GADGET1_LEFT_EDGE        (50 + (4 + 1) * 8)
  191. #define TEXT_GADGET1_TOP_EDGE        20
  192. #define TEXT_GADGET1_WIDTH        100
  193. #define TEXT_GADGET1_HEIGHT        12
  194. #define TEXT_GADGET1_TEXT        "_Name"
  195. #define TEXT_GADGET1_TEXT_ATTR        &topaz80_attr
  196. #define TEXT_GADGET1_INPUT_LEN        MAX_TEMPLATE_NAME_LEN
  197. #define TEXT_GADGET1_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_TEXT << 16 | TEXT_GADGET_FONT)
  198. #define TEXT_GADGET1_INPUT_DEFAULT    NULL
  199.  
  200. #define TEXT_GADGET2_TYPE        GADGET_DATA_TYPE_STRING
  201. #define TEXT_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  202. #define TEXT_GADGET2_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  203. #define TEXT_GADGET2_TOP_EDGE        (TEXT_GADGET1_TOP_EDGE + TEXT_GADGET1_HEIGHT + 4)
  204. #define TEXT_GADGET2_WIDTH        TEXT_GADGET1_WIDTH
  205. #define TEXT_GADGET2_HEIGHT        TEXT_GADGET1_HEIGHT
  206. #define TEXT_GADGET2_TEXT        "Te_xt"
  207. #define TEXT_GADGET2_TEXT_ATTR        &topaz80_attr
  208. #define TEXT_GADGET2_INPUT_LEN        MAX_TEXT_LEN
  209. #define TEXT_GADGET2_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_FONT << 16 | TEXT_GADGET_NAME)
  210. #define TEXT_GADGET2_INPUT_DEFAULT    NULL
  211.  
  212. #define TEXT_GADGET3_TYPE        GADGET_DATA_TYPE_STRING
  213. #define TEXT_GADGET3_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  214. #define TEXT_GADGET3_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  215. #define TEXT_GADGET3_TOP_EDGE        (TEXT_GADGET2_TOP_EDGE + TEXT_GADGET2_HEIGHT + 4)
  216. #define TEXT_GADGET3_WIDTH        TEXT_GADGET1_WIDTH
  217. #define TEXT_GADGET3_HEIGHT        TEXT_GADGET1_HEIGHT
  218. #define TEXT_GADGET3_TEXT        "_Font"
  219. #define TEXT_GADGET3_TEXT_ATTR        &topaz80_attr
  220. #define TEXT_GADGET3_INPUT_LEN        MAX_TEXT_LEN
  221. #define TEXT_GADGET3_INPUT_ACTIVATE    ((ULONG)TEXT_GADGET_NAME << 16 | TEXT_GADGET_TEXT)
  222. #define TEXT_GADGET3_INPUT_DEFAULT    NULL
  223.  
  224. #define TEXT_GADGET4_TYPE        GADGET_DATA_TYPE_COUNT
  225. #define TEXT_GADGET4_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  226. #define TEXT_GADGET4_LEFT_EDGE        (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH - TEXT_GADGET4_WIDTH)
  227. #define TEXT_GADGET4_TOP_EDGE        TEXT_GADGET3_TOP_EDGE
  228. #define TEXT_GADGET4_WIDTH        60
  229. #define TEXT_GADGET4_HEIGHT        12
  230. #define TEXT_GADGET4_TEXT        "_Size"
  231. #define TEXT_GADGET4_TEXT_ATTR        &topaz80_attr
  232. #define TEXT_GADGET4_COUNT_MIN        5
  233. #define TEXT_GADGET4_COUNT_MAX        200
  234. #define TEXT_GADGET4_COUNT_VALUE    NULL
  235.  
  236. #define TEXT_GADGET5_TYPE        GADGET_DATA_TYPE_CYCLE
  237. #define TEXT_GADGET5_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  238. #define TEXT_GADGET5_TEXT        "_Type"
  239. #define TEXT_GADGET5_LEFT_EDGE        TEXT_GADGET1_LEFT_EDGE
  240. #define TEXT_GADGET5_TOP_EDGE        (TEXT_GADGET3_TOP_EDGE + TEXT_GADGET3_HEIGHT + 4)
  241. #define TEXT_GADGET5_WIDTH        (20 + (23 + 2) * 8)
  242. #define TEXT_GADGET5_HEIGHT        15
  243. #define TEXT_GADGET5_TEXT_ATTR        &topaz80_attr
  244. #define TEXT_GADGET5_ACTIVE        0
  245. #define TEXT_GADGET5_TEXT_ARRAY        &text_type_text_array[0]
  246.  
  247. #define TEXT_GADGET6_TYPE        GADGET_DATA_TYPE_CHECK
  248. #define TEXT_GADGET6_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  249. #define TEXT_GADGET6_TEXT        "_Bold"
  250. #define TEXT_GADGET6_LEFT_EDGE        (TEXT_GADGET5_LEFT_EDGE + TEXT_GADGET5_WIDTH + 50)
  251. #define TEXT_GADGET6_TOP_EDGE        TEXT_GADGET1_TOP_EDGE
  252. #define TEXT_GADGET6_WIDTH        0
  253. #define TEXT_GADGET6_HEIGHT        0
  254. #define TEXT_GADGET6_TEXT_ATTR        &topaz80_attr
  255.  
  256. #define TEXT_GADGET7_TYPE        GADGET_DATA_TYPE_CHECK
  257. #define TEXT_GADGET7_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  258. #define TEXT_GADGET7_TEXT        "_Italic"
  259. #define TEXT_GADGET7_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  260. #define TEXT_GADGET7_TOP_EDGE        (TEXT_GADGET6_TOP_EDGE + 13)
  261. #define TEXT_GADGET7_WIDTH        0
  262. #define TEXT_GADGET7_HEIGHT        0
  263. #define TEXT_GADGET7_TEXT_ATTR        &topaz80_attr
  264.  
  265. #define TEXT_GADGET8_TYPE        GADGET_DATA_TYPE_CHECK
  266. #define TEXT_GADGET8_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  267. #define TEXT_GADGET8_TEXT        "_Underline"
  268. #define TEXT_GADGET8_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  269. #define TEXT_GADGET8_TOP_EDGE        (TEXT_GADGET7_TOP_EDGE + 13)
  270. #define TEXT_GADGET8_WIDTH        0
  271. #define TEXT_GADGET8_HEIGHT        0
  272. #define TEXT_GADGET8_TEXT_ATTR        &topaz80_attr
  273.  
  274. #define TEXT_GADGET9_TYPE        GADGET_DATA_TYPE_CHECK
  275. #define TEXT_GADGET9_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  276. #define TEXT_GADGET9_TEXT        "Color_2"
  277. #define TEXT_GADGET9_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  278. #define TEXT_GADGET9_TOP_EDGE        (TEXT_GADGET8_TOP_EDGE + 13)
  279. #define TEXT_GADGET9_WIDTH        0
  280. #define TEXT_GADGET9_HEIGHT        0
  281. #define TEXT_GADGET9_TEXT_ATTR        &topaz80_attr
  282.  
  283. #define TEXT_GADGET10_TYPE        GADGET_DATA_TYPE_CHECK
  284. #define TEXT_GADGET10_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  285. #define TEXT_GADGET10_TEXT        "Co_mplement"
  286. #define TEXT_GADGET10_LEFT_EDGE        TEXT_GADGET6_LEFT_EDGE
  287. #define TEXT_GADGET10_TOP_EDGE        (TEXT_GADGET9_TOP_EDGE + 13)
  288. #define TEXT_GADGET10_WIDTH        0
  289. #define TEXT_GADGET10_HEIGHT        0
  290. #define TEXT_GADGET10_TEXT_ATTR        &topaz80_attr
  291.  
  292.  /* Statics for edit gadgets */
  293.  
  294. STATIC BYTE *text_type_text_array[]=
  295. {
  296.     "Text", "Unsigned decimal number", "Signed decimal number", "Hex number",
  297.     "Binary number", NULL
  298. };
  299. struct GadgetData text_gadget_data[]=
  300. {
  301.     {
  302.         TEXT_GADGET1_TYPE,        /* gd_Type */
  303.         TEXT_GADGET1_FLAGS,        /* gd_Flags */
  304.         TEXT_GADGET1_LEFT_EDGE,    /* gd_LeftEdge */
  305.         TEXT_GADGET1_TOP_EDGE,    /* gd_TopEdge */
  306.         TEXT_GADGET1_WIDTH,        /* gd_Width */
  307.         TEXT_GADGET1_HEIGHT,    /* gd_Height */
  308.         TEXT_GADGET1_TEXT,        /* *gd_Text */
  309.         TEXT_GADGET1_TEXT_ATTR,    /* *gd_TextAttr */
  310.         {
  311.             TEXT_GADGET1_INPUT_LEN,        /* gd_InputLen */
  312.             TEXT_GADGET1_INPUT_ACTIVATE,        /* gd_InputActivate */
  313.             TEXT_GADGET1_INPUT_DEFAULT    /* gd_InputDefault */
  314.         }
  315.     },
  316.     {
  317.         TEXT_GADGET2_TYPE,        /* gd_Type */
  318.         TEXT_GADGET2_FLAGS,        /* gd_Flags */
  319.         TEXT_GADGET2_LEFT_EDGE,    /* gd_LeftEdge */
  320.         TEXT_GADGET2_TOP_EDGE,    /* gd_TopEdge */
  321.         TEXT_GADGET2_WIDTH,        /* gd_Width */
  322.         TEXT_GADGET2_HEIGHT,    /* gd_Height */
  323.         TEXT_GADGET2_TEXT,        /* *gd_Text */
  324.         TEXT_GADGET2_TEXT_ATTR,    /* *gd_TextAttr */
  325.         {
  326.             TEXT_GADGET2_INPUT_LEN,        /* gd_InputLen */
  327.             TEXT_GADGET2_INPUT_ACTIVATE,        /* gd_InputActivate */
  328.             TEXT_GADGET2_INPUT_DEFAULT    /* gd_InputDefault */
  329.         }
  330.     },
  331.     {
  332.         TEXT_GADGET3_TYPE,        /* gd_Type */
  333.         TEXT_GADGET3_FLAGS,        /* gd_Flags */
  334.         TEXT_GADGET3_LEFT_EDGE,    /* gd_LeftEdge */
  335.         TEXT_GADGET3_TOP_EDGE,    /* gd_TopEdge */
  336.         TEXT_GADGET3_WIDTH,        /* gd_Width */
  337.         TEXT_GADGET3_HEIGHT,    /* gd_Height */
  338.         TEXT_GADGET3_TEXT,        /* *gd_Text */
  339.         TEXT_GADGET3_TEXT_ATTR,    /* *gd_TextAttr */
  340.         {
  341.             TEXT_GADGET3_INPUT_LEN,        /* gd_InputLen */
  342.             TEXT_GADGET3_INPUT_ACTIVATE,        /* gd_InputActivate */
  343.             TEXT_GADGET3_INPUT_DEFAULT    /* gd_InputDefault */
  344.         }
  345.     },
  346.     {
  347.         TEXT_GADGET4_TYPE,        /* gd_Type */
  348.         TEXT_GADGET4_FLAGS,        /* gd_Flags */
  349.         TEXT_GADGET4_LEFT_EDGE,    /* gd_LeftEdge */
  350.         TEXT_GADGET4_TOP_EDGE,    /* gd_TopEdge */
  351.         TEXT_GADGET4_WIDTH,        /* gd_Width */
  352.         TEXT_GADGET4_HEIGHT,    /* gd_Height */
  353.         TEXT_GADGET4_TEXT,        /* *gd_Text */
  354.         TEXT_GADGET4_TEXT_ATTR,    /* *gd_TextAttr */
  355.         {
  356.             TEXT_GADGET4_COUNT_MIN,        /* gd_CountMin */
  357.             TEXT_GADGET4_COUNT_MAX,        /* gd_CountMax */
  358.             TEXT_GADGET4_COUNT_VALUE    /* gd_CountValue */
  359.         }
  360.     },
  361.     {
  362.         TEXT_GADGET5_TYPE,        /* gd_Type */
  363.         TEXT_GADGET5_FLAGS,        /* gd_Flags */
  364.         TEXT_GADGET5_LEFT_EDGE,    /* gd_LeftEdge */
  365.         TEXT_GADGET5_TOP_EDGE,    /* gd_TopEdge */
  366.         TEXT_GADGET5_WIDTH,        /* gd_Width */
  367.         TEXT_GADGET5_HEIGHT,    /* gd_Height */
  368.         TEXT_GADGET5_TEXT,        /* *gd_Text */
  369.         TEXT_GADGET5_TEXT_ATTR,    /* *gd_TextAttr */
  370.         {
  371.             0,                    /* gd_CyclePad */
  372.             TEXT_GADGET5_ACTIVE,/* gd_CycleActive */
  373.             TEXT_GADGET5_TEXT_ARRAY        /* *gd_CycleTextArray */
  374.         }
  375.     },
  376.     {
  377.         TEXT_GADGET6_TYPE,        /* gd_Type */
  378.         TEXT_GADGET6_FLAGS,        /* gd_Flags */
  379.         TEXT_GADGET6_LEFT_EDGE,    /* gd_LeftEdge */
  380.         TEXT_GADGET6_TOP_EDGE,    /* gd_TopEdge */
  381.         TEXT_GADGET6_WIDTH,        /* gd_Width */
  382.         TEXT_GADGET6_HEIGHT,    /* gd_Height */
  383.         TEXT_GADGET6_TEXT,        /* *gd_Text */
  384.         TEXT_GADGET6_TEXT_ATTR,    /* *gd_TextAttr */
  385.         {0, 0, 0}
  386.     },
  387.     {
  388.         TEXT_GADGET7_TYPE,        /* gd_Type */
  389.         TEXT_GADGET7_FLAGS,        /* gd_Flags */
  390.         TEXT_GADGET7_LEFT_EDGE,    /* gd_LeftEdge */
  391.         TEXT_GADGET7_TOP_EDGE,    /* gd_TopEdge */
  392.         TEXT_GADGET7_WIDTH,        /* gd_Width */
  393.         TEXT_GADGET7_HEIGHT,    /* gd_Height */
  394.         TEXT_GADGET7_TEXT,        /* *gd_Text */
  395.         TEXT_GADGET7_TEXT_ATTR,    /* *gd_TextAttr */
  396.         {0, 0, 0}
  397.     },
  398.     {
  399.         TEXT_GADGET8_TYPE,        /* gd_Type */
  400.         TEXT_GADGET8_FLAGS,        /* gd_Flags */
  401.         TEXT_GADGET8_LEFT_EDGE,    /* gd_LeftEdge */
  402.         TEXT_GADGET8_TOP_EDGE,    /* gd_TopEdge */
  403.         TEXT_GADGET8_WIDTH,        /* gd_Width */
  404.         TEXT_GADGET8_HEIGHT,    /* gd_Height */
  405.         TEXT_GADGET8_TEXT,        /* *gd_Text */
  406.         TEXT_GADGET8_TEXT_ATTR,    /* *gd_TextAttr */
  407.         {0, 0, 0}
  408.     },
  409.     {
  410.         TEXT_GADGET9_TYPE,        /* gd_Type */
  411.         TEXT_GADGET9_FLAGS,        /* gd_Flags */
  412.         TEXT_GADGET9_LEFT_EDGE,    /* gd_LeftEdge */
  413.         TEXT_GADGET9_TOP_EDGE,    /* gd_TopEdge */
  414.         TEXT_GADGET9_WIDTH,        /* gd_Width */
  415.         TEXT_GADGET9_HEIGHT,    /* gd_Height */
  416.         TEXT_GADGET9_TEXT,        /* *gd_Text */
  417.         TEXT_GADGET9_TEXT_ATTR,    /* *gd_TextAttr */
  418.         {0, 0, 0}
  419.     },
  420.     {
  421.         TEXT_GADGET10_TYPE,        /* gd_Type */
  422.         TEXT_GADGET10_FLAGS,    /* gd_Flags */
  423.         TEXT_GADGET10_LEFT_EDGE,/* gd_LeftEdge */
  424.         TEXT_GADGET10_TOP_EDGE,    /* gd_TopEdge */
  425.         TEXT_GADGET10_WIDTH,    /* gd_Width */
  426.         TEXT_GADGET10_HEIGHT,    /* gd_Height */
  427.         TEXT_GADGET10_TEXT,        /* *gd_Text */
  428.         TEXT_GADGET10_TEXT_ATTR,/* *gd_TextAttr */
  429.         {0, 0, 0}
  430.     },
  431.     {
  432.         INTUISUP_DATA_END        /* mark end of gadget data array */
  433.     }
  434. };
  435.  /* Defines for normal gadget data */
  436.  
  437. #define NORMAL_GADGET1_TYPE        GADGET_DATA_TYPE_STRING
  438. #define NORMAL_GADGET1_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  439. #define NORMAL_GADGET1_LEFT_EDGE    (50 + (4 + 1) * 8)
  440. #define NORMAL_GADGET1_TOP_EDGE        20
  441. #define NORMAL_GADGET1_WIDTH        100
  442. #define NORMAL_GADGET1_HEIGHT        12
  443. #define NORMAL_GADGET1_TEXT        "_Name"
  444. #define NORMAL_GADGET1_TEXT_ATTR    &topaz80_attr
  445. #define NORMAL_GADGET1_INPUT_LEN    MAX_TEMPLATE_NAME_LEN
  446. #define NORMAL_GADGET1_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_TEXT << 16 | NORMAL_GADGET_FONT)
  447. #define NORMAL_GADGET1_INPUT_DEFAULT    NULL
  448.  
  449. #define NORMAL_GADGET2_TYPE        GADGET_DATA_TYPE_STRING
  450. #define NORMAL_GADGET2_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  451. #define NORMAL_GADGET2_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  452. #define NORMAL_GADGET2_TOP_EDGE        (NORMAL_GADGET1_TOP_EDGE + NORMAL_GADGET1_HEIGHT + 4)
  453. #define NORMAL_GADGET2_WIDTH        NORMAL_GADGET1_WIDTH
  454. #define NORMAL_GADGET2_HEIGHT        NORMAL_GADGET1_HEIGHT
  455. #define NORMAL_GADGET2_TEXT        "Te_xt"
  456. #define NORMAL_GADGET2_TEXT_ATTR    &topaz80_attr
  457. #define NORMAL_GADGET2_INPUT_LEN    MAX_TEXT_LEN
  458. #define NORMAL_GADGET2_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_FONT << 16 | NORMAL_GADGET_NAME)
  459. #define NORMAL_GADGET2_INPUT_DEFAULT    NULL
  460.  
  461. #define NORMAL_GADGET3_TYPE        GADGET_DATA_TYPE_STRING
  462. #define NORMAL_GADGET3_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT | GADGET_DATA_FLAG_INPUT_AUTO_ACTIVATE)
  463. #define NORMAL_GADGET3_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  464. #define NORMAL_GADGET3_TOP_EDGE        (NORMAL_GADGET2_TOP_EDGE + NORMAL_GADGET2_HEIGHT + 4)
  465. #define NORMAL_GADGET3_WIDTH        NORMAL_GADGET1_WIDTH
  466. #define NORMAL_GADGET3_HEIGHT        NORMAL_GADGET1_HEIGHT
  467. #define NORMAL_GADGET3_TEXT        "_Font"
  468. #define NORMAL_GADGET3_TEXT_ATTR    &topaz80_attr
  469. #define NORMAL_GADGET3_INPUT_LEN    MAX_TEXT_LEN
  470. #define NORMAL_GADGET3_INPUT_ACTIVATE    ((ULONG)NORMAL_GADGET_NAME << 16 | NORMAL_GADGET_TEXT)
  471. #define NORMAL_GADGET3_INPUT_DEFAULT    NULL
  472.  
  473. #define NORMAL_GADGET4_TYPE        GADGET_DATA_TYPE_COUNT
  474. #define NORMAL_GADGET4_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  475. #define NORMAL_GADGET4_LEFT_EDGE    (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH - NORMAL_GADGET4_WIDTH)
  476. #define NORMAL_GADGET4_TOP_EDGE        NORMAL_GADGET3_TOP_EDGE
  477. #define NORMAL_GADGET4_WIDTH        60
  478. #define NORMAL_GADGET4_HEIGHT        12
  479. #define NORMAL_GADGET4_TEXT        "_Size"
  480. #define NORMAL_GADGET4_TEXT_ATTR    &topaz80_attr
  481. #define NORMAL_GADGET4_COUNT_MIN    5
  482. #define NORMAL_GADGET4_COUNT_MAX    200
  483. #define NORMAL_GADGET4_COUNT_VALUE    NULL
  484.  
  485. #define NORMAL_GADGET5_TYPE        GADGET_DATA_TYPE_CYCLE
  486. #define NORMAL_GADGET5_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_LEFT)
  487. #define NORMAL_GADGET5_TEXT        "_Pos"
  488. #define NORMAL_GADGET5_LEFT_EDGE    NORMAL_GADGET1_LEFT_EDGE
  489. #define NORMAL_GADGET5_TOP_EDGE        (NORMAL_GADGET3_TOP_EDGE + NORMAL_GADGET3_HEIGHT + 4)
  490. #define NORMAL_GADGET5_WIDTH        (20 + (23 + 2) * 8)
  491. #define NORMAL_GADGET5_HEIGHT        15
  492. #define NORMAL_GADGET5_TEXT_ATTR    &topaz80_attr
  493. #define NORMAL_GADGET5_ACTIVE        0
  494. #define NORMAL_GADGET5_TEXT_ARRAY    &normal_text_pos_text_array[0]
  495.  
  496. #define NORMAL_GADGET6_TYPE        GADGET_DATA_TYPE_CHECK
  497. #define NORMAL_GADGET6_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  498. #define NORMAL_GADGET6_TEXT        "Dis_abled"
  499. #define NORMAL_GADGET6_LEFT_EDGE    (NORMAL_GADGET5_LEFT_EDGE + NORMAL_GADGET5_WIDTH + 50)
  500. #define NORMAL_GADGET6_TOP_EDGE        NORMAL_GADGET1_TOP_EDGE
  501. #define NORMAL_GADGET6_WIDTH        0
  502. #define NORMAL_GADGET6_HEIGHT        0
  503. #define NORMAL_GADGET6_TEXT_ATTR    &topaz80_attr
  504.  
  505. #define NORMAL_GADGET7_TYPE        GADGET_DATA_TYPE_CHECK
  506. #define NORMAL_GADGET7_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  507. #define NORMAL_GADGET7_TEXT        "No _Border"
  508. #define NORMAL_GADGET7_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  509. #define NORMAL_GADGET7_TOP_EDGE        (NORMAL_GADGET6_TOP_EDGE + 13)
  510. #define NORMAL_GADGET7_WIDTH        0
  511. #define NORMAL_GADGET7_HEIGHT        0
  512. #define NORMAL_GADGET7_TEXT_ATTR    &topaz80_attr
  513.  
  514. #define NORMAL_GADGET8_TYPE        GADGET_DATA_TYPE_CHECK
  515. #define NORMAL_GADGET8_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  516. #define NORMAL_GADGET8_TEXT        "_High Comp"
  517. #define NORMAL_GADGET8_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  518. #define NORMAL_GADGET8_TOP_EDGE        (NORMAL_GADGET7_TOP_EDGE + 13)
  519. #define NORMAL_GADGET8_WIDTH        0
  520. #define NORMAL_GADGET8_HEIGHT        0
  521. #define NORMAL_GADGET8_TEXT_ATTR    &topaz80_attr
  522.  
  523. #define NORMAL_GADGET9_TYPE        GADGET_DATA_TYPE_CHECK
  524. #define NORMAL_GADGET9_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  525. #define NORMAL_GADGET9_TEXT        "Hot _Key"
  526. #define NORMAL_GADGET9_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  527. #define NORMAL_GADGET9_TOP_EDGE        (NORMAL_GADGET8_TOP_EDGE + 13)
  528. #define NORMAL_GADGET9_WIDTH        0
  529. #define NORMAL_GADGET9_HEIGHT        0
  530. #define NORMAL_GADGET9_TEXT_ATTR    &topaz80_attr
  531.  
  532. #define NORMAL_GADGET10_TYPE        GADGET_DATA_TYPE_CHECK
  533. #define NORMAL_GADGET10_FLAGS        (GADGET_DATA_FLAG_HOTKEY | GADGET_DATA_FLAG_TEXT_RIGHT)
  534. #define NORMAL_GADGET10_TEXT        "Color _2"
  535. #define NORMAL_GADGET10_LEFT_EDGE    NORMAL_GADGET6_LEFT_EDGE
  536. #define NORMAL_GADGET10_TOP_EDGE    (NORMAL_GADGET9_TOP_EDGE + 13)
  537. #define NORMAL_GADGET10_WIDTH        0
  538. #define NORMAL_GADGET10_HEIGHT        0
  539. #define NORMAL_GADGET10_TEXT_ATTR    &topaz80_attr
  540.  
  541.  /* Statics for normal gadgets */
  542.  
  543. STATIC BYTE *normal_text_pos_text_array[]=
  544. {
  545.     "Left of Select Box", "Right of Select Box", "Above the Select Box",
  546.     "Below the Select Box", "Inside of Select Box", NULL
  547. };
  548. struct GadgetData normal_gadget_data[]=
  549. {
  550.     {
  551.         NORMAL_GADGET1_TYPE,    /* gd_Type */
  552.         NORMAL_GADGET1_FLAGS,    /* gd_Flags */
  553.         NORMAL_GADGET1_LEFT_EDGE,        /* gd_LeftEdge */
  554.         NORMAL_GADGET1_TOP_EDGE,/* gd_TopEdge */
  555.         NORMAL_GADGET1_WIDTH,    /* gd_Width */
  556.         NORMAL_GADGET1_HEIGHT,    /* gd_Height */
  557.         NORMAL_GADGET1_TEXT,    /* *gd_Text */
  558.         NORMAL_GADGET1_TEXT_ATTR,        /* *gd_TextAttr */
  559.         {
  560.             NORMAL_GADGET1_INPUT_LEN,    /* gd_InputLen */
  561.             NORMAL_GADGET1_INPUT_ACTIVATE,        /* gd_InputActivate */
  562.             NORMAL_GADGET1_INPUT_DEFAULT        /* gd_InputDefault */
  563.         }
  564.     },
  565.     {
  566.         NORMAL_GADGET2_TYPE,    /* gd_Type */
  567.         NORMAL_GADGET2_FLAGS,    /* gd_Flags */
  568.         NORMAL_GADGET2_LEFT_EDGE,        /* gd_LeftEdge */
  569.         NORMAL_GADGET2_TOP_EDGE,/* gd_TopEdge */
  570.         NORMAL_GADGET2_WIDTH,    /* gd_Width */
  571.         NORMAL_GADGET2_HEIGHT,    /* gd_Height */
  572.         NORMAL_GADGET2_TEXT,    /* *gd_Text */
  573.         NORMAL_GADGET2_TEXT_ATTR,        /* *gd_TextAttr */
  574.         {
  575.             NORMAL_GADGET2_INPUT_LEN,    /* gd_InputLen */
  576.             NORMAL_GADGET2_INPUT_ACTIVATE,        /* gd_InputActivate */
  577.             NORMAL_GADGET2_INPUT_DEFAULT        /* gd_InputDefault */
  578.         }
  579.     },
  580.     {
  581.         NORMAL_GADGET3_TYPE,    /* gd_Type */
  582.         NORMAL_GADGET3_FLAGS,    /* gd_Flags */
  583.         NORMAL_GADGET3_LEFT_EDGE,        /* gd_LeftEdge */
  584.         NORMAL_GADGET3_TOP_EDGE,/* gd_TopEdge */
  585.         NORMAL_GADGET3_WIDTH,    /* gd_Width */
  586.         NORMAL_GADGET3_HEIGHT,    /* gd_Height */
  587.         NORMAL_GADGET3_TEXT,    /* *gd_Text */
  588.         NORMAL_GADGET3_TEXT_ATTR,        /* *gd_TextAttr */
  589.         {
  590.             NORMAL_GADGET3_INPUT_LEN,    /* gd_InputLen */
  591.             NORMAL_GADGET3_INPUT_ACTIVATE,        /* gd_InputActivate */
  592.             NORMAL_GADGET3_INPUT_DEFAULT        /* gd_InputDefault */
  593.         }
  594.     },
  595.     {
  596.         NORMAL_GADGET4_TYPE,    /* gd_Type */
  597.         NORMAL_GADGET4_FLAGS,    /* gd_Flags */
  598.         NORMAL_GADGET4_LEFT_EDGE,        /* gd_LeftEdge */
  599.         NORMAL_GADGET4_TOP_EDGE,/* gd_TopEdge */
  600.         NORMAL_GADGET4_WIDTH,    /* gd_Width */
  601.         NORMAL_GADGET4_HEIGHT,    /* gd_Height */
  602.         NORMAL_GADGET4_TEXT,    /* *gd_Text */
  603.         NORMAL_GADGET4_TEXT_ATTR,        /* *gd_TextAttr */
  604.         {
  605.             NORMAL_GADGET4_COUNT_MIN,    /* gd_CountMin */
  606.             NORMAL_GADGET4_COUNT_MAX,    /* gd_CountMax */
  607.             NORMAL_GADGET4_COUNT_VALUE    /* gd_CountValue */
  608.         }
  609.     },
  610.     {
  611.         NORMAL_GADGET5_TYPE,    /* gd_Type */
  612.         NORMAL_GADGET5_FLAGS,    /* gd_Flags */
  613.         NORMAL_GADGET5_LEFT_EDGE,        /* gd_LeftEdge */
  614.         NORMAL_GADGET5_TOP_EDGE,/* gd_TopEdge */
  615.         NORMAL_GADGET5_WIDTH,    /* gd_Width */
  616.         NORMAL_GADGET5_HEIGHT,    /* gd_Height */
  617.         NORMAL_GADGET5_TEXT,    /* *gd_Text */
  618.         NORMAL_GADGET5_TEXT_ATTR,        /* *gd_TextAttr */
  619.         {
  620.             0,                    /* gd_CyclePad */
  621.             NORMAL_GADGET5_ACTIVE,        /* gd_CycleActive */
  622.             NORMAL_GADGET5_TEXT_ARRAY    /* *gd_CycleTextArray */
  623.         }
  624.     },
  625.     {
  626.         NORMAL_GADGET6_TYPE,    /* gd_Type */
  627.         NORMAL_GADGET6_FLAGS,    /* gd_Flags */
  628.         NORMAL_GADGET6_LEFT_EDGE,        /* gd_LeftEdge */
  629.         NORMAL_GADGET6_TOP_EDGE,/* gd_TopEdge */
  630.         NORMAL_GADGET6_WIDTH,    /* gd_Width */
  631.         NORMAL_GADGET6_HEIGHT,    /* gd_Height */
  632.         NORMAL_GADGET6_TEXT,    /* *gd_Text */
  633.         NORMAL_GADGET6_TEXT_ATTR,        /* *gd_TextAttr */
  634.         {0, 0, 0}
  635.     },
  636.     {
  637.         NORMAL_GADGET7_TYPE,    /* gd_Type */
  638.         NORMAL_GADGET7_FLAGS,    /* gd_Flags */
  639.         NORMAL_GADGET7_LEFT_EDGE,        /* gd_LeftEdge */
  640.         NORMAL_GADGET7_TOP_EDGE,/* gd_TopEdge */
  641.         NORMAL_GADGET7_WIDTH,    /* gd_Width */
  642.         NORMAL_GADGET7_HEIGHT,    /* gd_Height */
  643.         NORMAL_GADGET7_TEXT,    /* *gd_Text */
  644.         NORMAL_GADGET7_TEXT_ATTR,        /* *gd_TextAttr */
  645.         {0, 0, 0}
  646.     },
  647.     {
  648.         NORMAL_GADGET8_TYPE,    /* gd_Type */
  649.         NORMAL_GADGET8_FLAGS,    /* gd_Flags */
  650.         NORMAL_GADGET8_LEFT_EDGE,        /* gd_LeftEdge */
  651.         NORMAL_GADGET8_TOP_EDGE,/* gd_TopEdge */
  652.         NORMAL_GADGET8_WIDTH,    /* gd_Width */
  653.         NORMAL_GADGET8_HEIGHT,    /* gd_Height */
  654.         NORMAL_GADGET8_TEXT,    /* *gd_Text */
  655.         NORMAL_GADGET8_TEXT_ATTR,        /* *gd_TextAttr */
  656.         {0, 0, 0}
  657.     },
  658.     {
  659.         NORMAL_GADGET9_TYPE,    /* gd_Type */
  660.         NORMAL_GADGET9_FLAGS,    /* gd_Flags */
  661.         NORMAL_GADGET9_LEFT_EDGE,        /* gd_LeftEdge */
  662.         NORMAL_GADGET9_TOP_EDGE,/* gd_TopEdge */
  663.         NORMAL_GADGET9_WIDTH,    /* gd_Width */
  664.         NORMAL_GADGET9_HEIGHT,    /* gd_Height */
  665.         NORMAL_GADGET9_TEXT,    /* *gd_Text */
  666.         NORMAL_GADGET9_TEXT_ATTR,        /* *gd_TextAttr */
  667.         {0, 0, 0}
  668.     },
  669.     {
  670.         NORMAL_GADGET10_TYPE,    /* gd_Type */
  671.         NORMAL_GADGET10_FLAGS,    /* gd_Flags */
  672.         NORMAL_GADGET10_LEFT_EDGE,        /* gd_LeftEdge */
  673.         NORMAL_GADGET10_TOP_EDGE,        /* gd_TopEdge */
  674.         NORMAL_GADGET10_WIDTH,    /* gd_Width */
  675.         NORMAL_GADGET10_HEIGHT,    /* gd_Height */
  676.         NORMAL_GADGET10_TEXT,    /* *gd_Text */
  677.         NORMAL_GADGET10_TEXT_ATTR,        /* *gd_TextAttr */
  678.         {0, 0, 0}
  679.     },
  680.     {
  681.         INTUISUP_DATA_END        /* mark end of gadget data array */
  682.     }
  683. };
  684.  /* Edit template data */
  685.  
  686. SHORT
  687. edit_template_data(VOID)
  688. {
  689.     struct Template *tp = selected_template;
  690.     struct BorderData *bd;
  691.     struct TextData *td;
  692.     struct GadgetData *gd, *gd1, *gd2, *gd3;
  693.     APTR gl1, gl2, gl3, gl4;
  694.     ULONG flags;
  695.     SHORT status;
  696.  
  697.     /* Init normal and special gadget data */
  698.     switch (TEMPLATE_GROUP(tp))
  699.     {
  700.     case TEMPLATE_GROUP_BORDER:
  701.         bd = &tp->tp_Data.tp_BorderData;
  702.         gd1 = &border_gadget_data[0];
  703.         gd2 = NULL;
  704.         gd3 = NULL;
  705.  
  706.         /* Init normal gadget data */
  707.         (gd1 + BORDER_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  708.         (gd1 + BORDER_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive = bd->bd_Type - 1;
  709.         break;
  710.  
  711.     case TEMPLATE_GROUP_TEXT:
  712.         td = &tp->tp_Data.tp_TextData;
  713.         gd1 = &text_gadget_data[0];
  714.         gd2 = NULL;
  715.         gd3 = NULL;
  716.         flags = td->td_Flags;
  717.  
  718.         /* Init normal gadget data */
  719.         (gd1 + TEXT_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  720.         (gd1 + TEXT_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = td->td_Text;
  721.         (gd1 + TEXT_GADGET_TEXT)->gd_Flags &= ~(GADGET_DATA_FLAG_STRING_UNSIGNED_DEC | GADGET_DATA_FLAG_STRING_SIGNED_DEC | GADGET_DATA_FLAG_STRING_HEX | GADGET_DATA_FLAG_STRING_BIN);
  722.         switch (td->td_Type)
  723.         {
  724.         case TEXT_DATA_TYPE_NUM_UNSIGNED_DEC:
  725.             (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_UNSIGNED_DEC;
  726.             break;
  727.  
  728.         case TEXT_DATA_TYPE_NUM_SIGNED_DEC:
  729.             (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_SIGNED_DEC;
  730.             break;
  731.  
  732.         case TEXT_DATA_TYPE_NUM_HEX:
  733.             (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_HEX;
  734.             break;
  735.  
  736.         case TEXT_DATA_TYPE_NUM_BIN:
  737.             (gd1 + TEXT_GADGET_TEXT)->gd_Flags |= GADGET_DATA_FLAG_STRING_BIN;
  738.             break;
  739.         }
  740.         (gd1 + TEXT_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) td->td_TextAttr->ta_Name;
  741.         (gd1 + TEXT_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue = td->td_TextAttr->ta_YSize;
  742.         (gd1 + TEXT_GADGET_TYPE)->gd_SpecialData.gd_CycleData.gd_CycleActive = td->td_Type - 1;
  743.         (gd1 + TEXT_GADGET_BOLD)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_BOLD ? 1 : 0);
  744.         (gd1 + TEXT_GADGET_ITALIC)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_ITALIC ? 1 : 0);
  745.         (gd1 + TEXT_GADGET_UNDERLINED)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_UNDERLINED ? 1 : 0);
  746.         (gd1 + TEXT_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_COLOR2 ? 1 : 0);
  747.         (gd1 + TEXT_GADGET_COMPLEMENT)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & TEXT_DATA_FLAG_COMPLEMENT ? 1 : 0);
  748.         break;
  749.  
  750.     case TEMPLATE_GROUP_GADGET:
  751.         gd = &tp->tp_Data.tp_GadgetData;
  752.         gd1 = &normal_gadget_data[0];
  753.         flags = gd->gd_Flags;
  754.  
  755.         /* Init normal gadget data */
  756.         (gd1 + NORMAL_GADGET_NAME)->gd_SpecialData.gd_InputData.gd_InputDefault = &tp->tp_TemplateName[0];
  757.         (gd1 + NORMAL_GADGET_TEXT)->gd_SpecialData.gd_InputData.gd_InputDefault = gd->gd_Text;
  758.         (gd1 + NORMAL_GADGET_FONT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) gd->gd_TextAttr->ta_Name;
  759.         (gd1 + NORMAL_GADGET_SIZE)->gd_SpecialData.gd_CountData.gd_CountValue = gd->gd_TextAttr->ta_YSize;
  760.         switch (GADGET_TEXT_POS_MASK(gd->gd_Flags))
  761.         {
  762.         case GADGET_DATA_FLAG_TEXT_LEFT:
  763.             (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_LEFT;
  764.             break;
  765.  
  766.         case GADGET_DATA_FLAG_TEXT_RIGHT:
  767.             (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_RIGHT;
  768.             break;
  769.  
  770.         case GADGET_DATA_FLAG_TEXT_ABOVE:
  771.             (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_ABOVE;
  772.             break;
  773.  
  774.         case GADGET_DATA_FLAG_TEXT_BELOW:
  775.             (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_BELOW;
  776.             break;
  777.  
  778.         default:
  779.             (gd1 + NORMAL_GADGET_POS)->gd_SpecialData.gd_CycleData.gd_CycleActive = TEXT_POS_INSIDE;
  780.             break;
  781.         }
  782.         (gd1 + NORMAL_GADGET_DISABLED)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_DISABLED ? 1 : 0);
  783.         (gd1 + NORMAL_GADGET_NO_BORDER)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_NO_BORDER ? 1 : 0);
  784.         (gd1 + NORMAL_GADGET_HIGHCOMP)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_HIGH_COMP ? 1 : 0);
  785.         (gd1 + NORMAL_GADGET_HOTKEY)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_HOTKEY ? 1 : 0);
  786.         (gd1 + NORMAL_GADGET_COLOR2)->gd_SpecialData.gd_CheckData.gd_CheckSelected = (flags & GADGET_DATA_FLAG_TEXT_COLOR2 ? 1 : 0);
  787.  
  788.         /* Init special gadget data */
  789.         switch (gd->gd_Type)
  790.         {
  791.         case GADGET_DATA_TYPE_BUTTON:
  792.         case GADGET_DATA_TYPE_CHECK:
  793.             gd2 = NULL;
  794.             gd3 = NULL;
  795.             break;
  796.  
  797.         case GADGET_DATA_TYPE_MX:
  798.             gd2 = &list_gadget_data[0];
  799.             gd3 = NULL;
  800.             break;
  801.  
  802.         case GADGET_DATA_TYPE_STRING:
  803.             gd2 = NULL;
  804.             gd3 = NULL;
  805.             break;
  806.  
  807.         case GADGET_DATA_TYPE_INTEGER:
  808.             gd2 = NULL;
  809.             gd3 = NULL;
  810.             break;
  811.  
  812.         case GADGET_DATA_TYPE_SLIDER:
  813.             gd2 = NULL;
  814.             gd3 = NULL;
  815.             break;
  816.  
  817.         case GADGET_DATA_TYPE_SCROLLER:
  818.             gd2 = NULL;
  819.             gd3 = NULL;
  820.             break;
  821.  
  822.         case GADGET_DATA_TYPE_CYCLE:
  823.             gd2 = &list_gadget_data[0];
  824.             gd3 = NULL;
  825.             break;
  826.  
  827.         case GADGET_DATA_TYPE_COUNT:
  828.             gd2 = NULL;
  829.             gd3 = NULL;
  830.             break;
  831.  
  832.         case GADGET_DATA_TYPE_LISTVIEW:
  833.             gd2 = &list_gadget_data[0];
  834.             gd3 = NULL;
  835.             break;
  836.  
  837.         case GADGET_DATA_TYPE_PALETTE:
  838.             gd2 = NULL;
  839.             gd3 = NULL;
  840.             break;
  841.         }
  842.         break;
  843.     }
  844.  
  845.     /* If special gadget data needed then enable 'SWITCH' gadget */
  846.     if (gd2 || gd3)
  847.     {
  848.         edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags &= ~GADGET_DATA_FLAG_DISABLED;
  849.         gl2 = NULL;
  850.         gl3 = NULL;
  851.     }
  852.     else
  853.     {
  854.         edit_gadget_data[EDIT_GADGET_SWITCH].gd_Flags |= GADGET_DATA_FLAG_DISABLED;
  855.     }
  856.  
  857.     /* Create gadget lists */
  858.     if (!(gl1 = ICreateGadgets(eri, gd1, 0, 0, NULL)))
  859.     {
  860.         status = EDITOR_ERROR_OUT_OF_MEM;
  861.     }
  862.     else
  863.     {
  864.         if (gd2 && !(gl2 = ICreateGadgets(eri, gd2, 0, 0, NULL)))
  865.         {
  866.             status = EDITOR_ERROR_OUT_OF_MEM;
  867.         }
  868.         else
  869.         {
  870.             if (gd3 && !(gl3 = ICreateGadgets(eri, gd3, 0, 0, NULL)))
  871.             {
  872.                 status = EDITOR_ERROR_OUT_OF_MEM;
  873.             }
  874.             else
  875.             {
  876.                 if (!(gl4 = ICreateGadgets(eri, &edit_gadget_data[0], 0, 0,
  877.                                            NULL)))
  878.                 {
  879.                     status = EDITOR_ERROR_OUT_OF_MEM;
  880.                 }
  881.                 else
  882.                 {
  883.                     status = edit_template_data_action(tp, gl1, gl2, gl3, gl4);
  884.                     IFreeGadgets(gl4);
  885.                 }
  886.                 if (gd3)
  887.                 {
  888.                     IFreeGadgets(gl3);
  889.                 }
  890.             }
  891.             if (gd2)
  892.             {
  893.                 IFreeGadgets(gl2);
  894.             }
  895.         }
  896.         IFreeGadgets(gl1);
  897.     }
  898.     show_error(status);
  899.     MWCheck();
  900.     return (status);
  901. }
  902.